home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / MATHEMAT / STATISTI / 0850C.ZIP / SET3.ARC / DATA-UN.PAS < prev   
Pascal/Delphi Source File  |  1979-12-31  |  5KB  |  181 lines

  1. VAR C:CHAR;
  2.     SWITCH2:BOOLEAN;
  3.     CHOICE:INTEGER;
  4.  
  5. PROCEDURE UNMER;
  6. VAR F:ARRAY[1..11] OF TEXT;
  7.     FILENAME:ARRAY[1..11] OF STRING[12];
  8.     XFILE:TEXT;
  9.     FILENAMX:STRING[12];
  10.     X:REAL;
  11.     NUMROW,K,SWITCH4,I,NUMCOL,J:INTEGER;
  12.     C,SWITCH3:CHAR;
  13.     NUMCELL:ARRAY[1..12,1..12] OF INTEGER;
  14.  
  15. BEGIN
  16. WRITELN ('UNEQUAL COLUMN BY ROW DATA MERGE FROM N COLUMN DATA');
  17. WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
  18. READLN (SWITCH3);
  19. IF SWITCH3='Y' THEN SWITCH4:=1;
  20. IF SWITCH3='y' THEN SWITCH4:=1;
  21. IF SWITCH4=1 THEN BEGIN
  22. WRITELN (LST,'UNEQUAL COLUMN BY ROW DATA MERGE FROM N COLUMN DATA');
  23. END;
  24. WRITE ('NAME OF FINAL FILE: ');
  25. READLN (FILENAMX);
  26. ASSIGN (XFILE,FILENAMX);èREWRITE (XFILE);
  27.  
  28. X:=4;
  29. WRITELN (XFILE,X); {LEVEL}
  30. WRITE ('NUMBER OF COLUMNS TO MERGE  = ');
  31. READLN (NUMCOL);
  32. X:=NUMCOL;
  33. WRITELN (XFILE,X); {COL}
  34.  
  35. FOR I:=1 TO NUMCOL DO
  36. BEGIN
  37. WRITE ('NAME OF FILE ',I,' TO MERGE: ');
  38. READLN (FILENAME[I]);
  39. ASSIGN (F[I],FILENAME[I]);
  40. RESET (F[I]);
  41. END;
  42.  
  43. FOR I:=1 TO NUMCOL DO {LEVEL}
  44. BEGIN
  45. READLN (F[I],X); {LEVEL}
  46. READLN (F[I],X); {N OF OLD COL NEW ROW}
  47. END;
  48.  
  49. NUMROW:=ROUND(X);
  50. WRITELN (XFILE,X); {ROWS};
  51. èFOR I:=1 TO NUMCOL DO {NUM OF COL}
  52. FOR J:=1 TO NUMROW DO {NUM OF NUM}
  53. BEGIN
  54. READLN (F[I],X);
  55. WRITELN (XFILE,X); {NUMCELLS}
  56. NUMCELL[I,J]:=ROUND(X);
  57. END;
  58.  
  59. FOR I:=1 TO NUMCOL DO
  60. FOR J:=1 TO NUMROW DO
  61. BEGIN
  62. FOR K:=1 TO NUMCELL[I,J] DO
  63. BEGIN
  64. READLN (F[I],X);
  65. WRITELN (XFILE,X);
  66. END;
  67. END;
  68.  
  69. FOR I:=1 TO NUMCOL DO
  70. BEGIN
  71. CLOSE (F[I]);
  72. END;
  73. CLOSE (XFILE);
  74. END;
  75.  
  76. PROCEDURE UNOUT;èVAR F:ARRAY[1..11] OF TEXT;
  77.     FILENAME:ARRAY[1..11] OF STRING[12];
  78.     XFILE:TEXT;
  79.     FILENAMX:STRING[12];
  80.     X:REAL;
  81.     NUMROW,K,SWITCH4,I,NUMCOL,J:INTEGER;
  82.     SWITCH3:CHAR;
  83.     NUMCELL:ARRAY[1..12,1..12] OF INTEGER;
  84.  
  85. BEGIN
  86. WRITELN ('UNEQUAL COLUMN BY ROW DATA OUTPUT');
  87. WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
  88. READLN (SWITCH3);
  89. IF SWITCH3='Y' THEN SWITCH4:=1;
  90. IF SWITCH3='y' THEN SWITCH4:=1;
  91. IF SWITCH4=1 THEN BEGIN
  92. WRITELN (LST,'UNEQUAL COLUMN BY ROW DATA OUTPUT');
  93. END;
  94. WRITE ('NAME OF  FILE: ');
  95. READLN (FILENAMX);
  96. ASSIGN (XFILE,FILENAMX);
  97. RESET (XFILE);
  98.  
  99. READLN (XFILE,X); {LEVEL}
  100. READLN (XFILE,X); {COL}
  101. NUMCOL:=ROUND(X);èWRITELN ('NUMBER OF COLUMNS = ',NUMCOL);
  102. IF SWITCH4=1 THEN BEGIN
  103. WRITELN (LST,'NUMBER OF COLUMNS = ',NUMCOL);
  104. END;
  105. READLN (XFILE,X); {ROWS};
  106. NUMROW:=ROUND(X);
  107. WRITELN ('NUMBER OF ROWS = ',NUMROW);
  108. IF SWITCH4=1 THEN BEGIN
  109. WRITELN (LST,'NUMBER OF ROWS = ',NUMROW);
  110. END;
  111.  
  112. FOR I:=1 TO NUMCOL DO {NUM OF COL}
  113. FOR J:=1 TO NUMROW DO {NUM OF NUM}
  114. BEGIN
  115. READLN (XFILE,X); {NUMCELLS}
  116. NUMCELL[I,J]:=ROUND(X);
  117. END;
  118.  
  119. FOR I:=1 TO NUMCOL DO
  120. BEGIN
  121. WRITE ('COLUMN ',I);
  122. IF SWITCH4=1 THEN BEGIN
  123. WRITE (LST,'COLUMN ',I);
  124. END;
  125. FOR J:=1 TO NUMROW DO
  126. BEGINèWRITELN ('ROW ',J);
  127. IF SWITCH4=1 THEN BEGIN
  128. WRITELN (LST,'ROW ',J);
  129. END;
  130. FOR K:=1 TO NUMCELL[I,J] DO
  131. BEGIN
  132. READLN (XFILE,X);
  133. WRITELN ('ITEM ',K,' = ',X:8:3);
  134. IF SWITCH4=1 THEN BEGIN
  135. WRITELN (LST,'ITEM ',K,' = ',X:8:3);
  136. END;
  137. END;
  138. END;
  139. END;
  140.  
  141. CLOSE (XFILE);
  142. END;
  143.  
  144.  
  145. BEGIN
  146. WRITELN ('IN THE UNUSUAL CASE OF UNEQUAL CELL SIZE TWO WAY ANALYSIS OF VARIANCE,');
  147. WRITELN ('THE DATA MUST BE HANDLED IN A SPECIAL WAY.  EACH COLUMN SHOULD BE ENTERED');
  148. WRITELN ('WITH THE DATA-COL PROGRAM WITH EACH COLUMN OF DIFFERENT SIZE REPRESENTING');
  149. WRITELN ('THE UNEQUAL CELLS OF THE FONAL DATA.  THUS A FILE OF N COLUMNS IS ACTUALLY');
  150. WRITELN ('ONE COLUMN OF THE FINAL DATA.  EACH FILE IS A ROW OF THE FINAL DATA.');
  151. WRITELN ('OPTION #10 IN THIS PROGRAM WILL MERGE THE INDIVIDUAL ROWS INTO A SINGLE');èWRITELN ('ROW BY COLUMN BY UNEQUAL N DATA SET, WHICH IS THE CORRECT FORM');
  152. WRITELN ('FOR USE IN THIS STATISTICAL PROGRAM.  ALL ADDITIONS, CORRECTIONS');
  153. WRITELN ('DELETIONS AND COMBINATIONS SHOULD BE DONE WITH THE DATA-COL PROGRAM');
  154. WRITELN ('ON EACH COLUMN INDIVIDUALLY.  OPTION #11 OF THIS PROGRAM ALLOWS');
  155. WRITELN ('OUTPUT OF THIS FORM OF DATA FOR CHECKING IT.');
  156. WRITELN;
  157. WRITELN ('WARNING!');
  158. WRITELN ('     DO NOT GIVE THE FILE THE NAME OF A FILE THAT ALREADY EXISTS');
  159. WRITELN ('     ON THE DISK OR THE OLD FILE WILL BE ERASED.');
  160. WRITELN;
  161. WRITELN ('ENTER A CARRIAGE RETURN TO CONTINUE');
  162. READLN (C);
  163. REPEAT;
  164. WRITELN ('1. MERGING COLUMNS INTO 2 WAY UNEQUAL N ANOVA DATA--ENTER A 1');
  165. WRITELN ('2. OUTPUT OF 2 WAY UNEQUAL N ANOVA DATA--ENTER AN 2.');
  166. WRITE ('CHOICE: ');
  167. READLN (CHOICE);
  168. CASE CHOICE OF
  169. 1:UNMER;
  170. 2:UNOUT;
  171. END;
  172. WRITE ('DO YOU WANT ANOTHER RUN, (Y/N): ');
  173. READLN (C);
  174. WHILE NOT (C IN ['Y','y','n','N']) DO
  175. BEGIN
  176. WRITE ('TYPE Y FOR YES, OR N FOR NO: ');èREADLN (C);
  177. END;
  178. SWITCH2:=C IN ['N','n'];
  179. UNTIL SWITCH2;
  180. END.
  181.